package com.itheima.day02_eesy01_mybatiscrud.dao;

import com.itheima.day02_eesy01_mybatiscrud.domain.QueryVo;
import com.itheima.day02_eesy01_mybatiscrud.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author Huangyt
 * @version 1.0
 * @date 2020/5/12 17:13
 * 用户持久层接口
 */
public interface IUserDao {

    List<User> findAll();

    public void saveUser(User user);

    public void updateUser(User user);

    public void deleteUser(int id);

    public User findById(Integer id);

    //模糊查询
    public List<User> findByName(String username);

    //查询总数
    public int findTotal();

    //根据queryVo中的条件查询用户（多条件查询写法一）
    public List<User> findUserByVo(QueryVo vo);

    //根据多个参数条件查询用户（多条件查询写法二, 此写法在Mapper.xml中不用指定parameterType）
    public List<User> findUserByNameAndAddress(@Param("username") String username, @Param("address") String address);
}
